/**
 * 文章分类管理
 * 
 * @param $
 */
(function($) {

	var ArticleCateObject = {
		// 分类树
		$cateTree : "",

		// 用于识别当前选中行
		data_index : "",

		init : function() {
			// 初始化文章分类表格
			this._init_table();
			// 校验不能为空的字段
			this._validate_form_field();
			// 添加子分类按钮
			this._reg_add_sub_cate_btn();
			// 删除分类按钮事件
			this._reg_delete_cate_btn();
			// 修改分类按钮
			this._reg_update_cate_btn();
			// 新增或者修改文章分类信息模态框的“提交按钮”
			this._reg_submit_btn();
			// 注册顶级分类按钮
			this._reg_add_top_cate_btn();
			// 移动节点，“确定”按钮
			this._reg_pf_cate_move_submit_btn();
			// 移动到其他分类下
			this._reg_pf_cate_move_to_btn();
		},

		/** 添加子分类按钮 */
		_reg_add_sub_cate_btn : function() {
			$(document).on("click", ".pf-add-sub-cate-btn", function() {
				var $tr = $(this).closest("tr");
				var data = $tr.data("data");
				//
				ArticleCateObject.data_index = $tr.attr("data-index");
				// 重置form
				$("#pf-cate-save-form").resetForm();
				$("#pf-cate-save-form input[name='parentId']").val(data.id);
				$("#pf-cate-save-form input[name='id']").val("");

				// 显示弹窗
				$("#pf-modal-title").html("添加分类信息，父分类：" + data.title);
				$("#pf-add-cate-modal").modal("show");

			});
		},

		/** 删除分类按钮事件 */
		_reg_delete_cate_btn : function() {
			$(document).on("click", ".pf-delete-cate-btn", function() {
				var $tr = $(this).closest("tr");
				layer.msg('确定删除分类：' + $tr.data("data").title, {
					time : 0, // 20s后自动关闭
					icon : 3,
					shade : 0.3,
					btn : [ '确定', '取消' ],
					yes : function(index) {
						layer.close(index);
						var index = layer.loadingMsg('正在处理，请稍候。。。');
						$.ajax({
							type : "GET",
							cache : false,
							data : {
								id : $tr.data("data").id,
								title : $tr.data("data").title
							},
							dataType : "json",
							url : "/manage/article/cate/delete",
							success : function(data) {
								// 关闭加载框
								layer.close(index);
								if (data != undefined && data.isSuccess == true) {
									// 刷新
									$tr.remove();
								} else {
									layer.errorMsg(data.message);
								}
							}
						});
					}
				});
			});

		},

		/** 修改分类按钮 */
		_reg_update_cate_btn : function() {
			$(document).on("click", ".pf-update-cate-btn", function() {
				// 重置form
				$("#pf-cate-save-form").resetForm();
				var $tr = $(this).closest("tr");
				var data = $tr.data("data");
				// 显示弹窗
				$("#pf-modal-title").html("修改分类信息");
				$("#pf-add-cate-modal").modal("show");
				// 设置数据
				FormUtils.fill_form($("#pf-cate-save-form"), data);
				$("#pf-cate-save-form input[name='hidden'][value='" + data.hidden + "']").trigger("click");
				ArticleCateObject.data_index = $tr.attr("data-index");
			});
		},

		/** 新增或者修改文章分类信息模态框的“提交按钮” */
		_reg_submit_btn : function() {
			$(".pf-submit").click(function() {
				// 校验字段
				if (ArticleCateObject._validate_form_field() == false) {
					return;
				}
				// 处理中
				var index = layer.loadingMsg('正在处理，请稍候。。。');
				$("#pf-cate-save-form").ajaxSubmit({
					dataType : "json",
					iframe : true,
					error : function(data, status, e) {
						alert(e);
					},
					success : function(data) {
						// 关闭加载框
						layer.close(index);
						if (data != undefined && data.isSuccess == true) {
							// 关闭 添加 用户的 form窗口
							$("#pf-add-cate-modal").modal("hide");
							var id = $("#pf-cate-save-form input[name='id']").val();
							var paretnId = $("#pf-cate-save-form input[name='parentId']").val();
							//
							var $row = $(template("pf-row", data.message));
							//
							$row.data("data", data.message);
							if (id == "" && paretnId == "") {
								// 新增顶级分类
								$("#pf-cate-table").bootstrapTable("refresh");
							} else if (id == "") {
								// 新增子分类
								$("#pf-cate-table").bootstrapTable("refresh");
							} else {
								// 修改分类
								var $tr = $("#tbody tr[data-index='" + ArticleCateObject.data_index + "']");
								var $td = $tr.find("td");
								$td.eq(2).find("span").html(data.message.title);
								$td.eq(3).html(data.message.orderby);
								if (data.message.hidden == true) {
									$td.eq(4).html("隐藏");
								} else {
									$td.eq(4).html("显示");
								}
								$tr.data("data", data.message);
							}
						} else {
							layer.errorMsg(data.message);
						}
					}
				});
			});
		},

		/** 校验不能为空的字段 */
		_validate_form_field : function() {
			if ($("#pf-article_cate-save-form input[name='name']").val() == "") {
				layer.msg("文章分类名不能为空", {
					time : 0,
					icon : 2,
					shade : 0.3,
					btn : [ '确定' ]
				});
				return false;
			} else if ($("#pf-article_cate-save-form input[name='orderby']").val() == "") {
				layer.msg("文章分类名 分类排序不能为空", {
					time : 0,
					icon : 2,
					shade : 0.3,
					btn : [ '确定' ]
				});
				return false;
			} else if ($("#pf-article_cate-save-form input[name='pinyin']").val() == "") {
				layer.msg("文章分类名 字母缩写不能为空", {
					time : 0,
					icon : 2,
					shade : 0.3,
					btn : [ '确定' ]
				});
				return false;
			}

			else {
				return true;
			}
		},

		/** 注册顶级分类按钮 */
		_reg_add_top_cate_btn : function() {
			$("#pf-add-top-cate-btn").click(function() {
				FormUtils.reset_form($("#pf-cate-save-form"));
				$("#pf-add-cate-modal").modal("show");
				$("#pf-cate-save-form input[name='id']").val(data.id);
				$("#pf-cate-save-form input[name='paretnId']").val(data.paretnId);
				ArticleCateObject.data_index = "";
			});// end 注册顶级分类按钮
		},

		/** 移动节点，“确定”按钮 */
		_reg_pf_cate_move_submit_btn : function() {
			$(".pf-move-cate-submit").click(function() {

				var id = $(this).data("id");
				var parentId = ArticleCateObject.$cateTree.getCheckedNodes(true)[0].id;
				if (parentId == undefined || parentId == "") {
					layer.errorMsg("请选父节点");
					return;
				}
				// 处理中
				var index = layer.msg('正在处理，请稍候。。。', {
					icon : 16,
					shade : 0.3
				});
				$.ajax({
					url : '/manage/article/cate/move',
					data : {
						id : id,
						parentId : parentId
					},
					type : "get",
					cache : false,
					dataType : 'json',
					timeout : 15000,
					error : function() {

					},
					success : function(json) {
						// 关闭加载框
						layer.close(index);
						if (json.isSuccess) {
							$("#pf-cate-table").bootstrapTable("refresh");
							$("#pf-move-cate-modal").modal("hide");
						} else {
							layer.errorMsg(json.message);
						}
					}
				});
			});
		},
		/** 移动到其他分类下 */
		_reg_pf_cate_move_to_btn : function() {
			$(document).on("click", ".pf-cate-move-to-btn", function() {
				var $tr = $(this).closest("tr");
				var topData = $tr.data("data");
				var index = layer.loadingMsg('正在加载分类树，请稍候。。。');
				$.ajax({
					type : "GET",
					cache : false,
					dataType : "json",
					url : "/manage/article/cate/get/all",
					success : function(data) {
						// 关闭加载框
						layer.close(index);
						if (data != undefined && data.isSuccess == true) {
							// 重置权限树
							var setting = {
								check : {
									enable : true,
									chkStyle : "radio",
									radioType : "all",
									autoCheckTrigger : true
								},
								data : {
									simpleData : {
										enable : true,
										idKey : "id",
										pIdKey : "parentId",
										rootPId : "",
									},
									key : {
										name : "title"
									}
								}
							}
							ArticleCateObject.$cateTree = $.fn.zTree.init($("#cateTree"), setting, data.message.result);
							$(".pf-move-cate-submit").data("id", topData.id);
							$("#pf-move-cate-modal").modal("show");
						} else {
							layer.errorMsg(data.message);
						}
					}
				});
			});
		},// end 移动到其他分类下

		/** 初始化分类表格 */
		_init_table : function() {
			$("#pf-cate-table")
					.bootstrapTable(
							{
								method : 'get',
								url : "/manage/article/cate/get/all",
								cache : false,
								// height : 400,
								sidePagination : 'server', // client or server
								queryParamsType : 'pageSize',
								// search : true,
								striped : true,
								pagination : true,
								pageSize : 200,
								pageList : [ 10, 20, 50, 100, 200 ],
								paginationDetail : false,
								paginationHAlign : 'right', // right, left
								showColumns : false,
								showRefresh : true,
								minimumCountColumns : 2,
								checkboxHeader : false,
								clickToSelect : true,
								onLoadSuccess : function() {
									$("#pf-cate-table tbody").hide();
									// 初始化tree-table
									$.treetable.defaults = {
										id_col : 0,// ID td列 {从0开始}
										parent_col : 1,// 父ID td列
										handle_col : 2,// 加上操作，展开操作的 td列
										open_img : "/assets/vendors/tree-table/images/minus.gif",
										close_img : "/assets/vendors/tree-table/images/plus.gif",
										is_open_start : false
									}
									setTimeout(function() {
										// 只能应用于tbody
										$("#tbody").treetable();
										// 隐藏数据列
										$("#tbody tr").find("td:eq(0)").hide();
										$("#tbody tr").find("td:eq(1)").hide();
										$("#pf-cate-table tr:eq(0)").find("th:eq(0)").hide();
										$("#pf-cate-table tr:eq(0)").find("th:eq(1)").hide();
										$("#pf-cate-table tbody").show();
									}, 100);

								},
								columns : [
										{
											field : 'id',
											title : '#id',
											align : 'left',
											valign : 'middle',
											visible : true,
											sortable : false
										},
										{
											field : 'parentId',
											title : '#parentId',
											align : 'left',
											valign : 'middle',
											visible : true,
											sortable : false,
											formatter : function(value, row, index) {
												if (row.parentId == null || row.parentId == "") {
													return "";
												} else {
													return row.parentId;
												}
											}
										},
										{
											field : 'title',
											title : '分类名称',
											align : 'left',
											valign : 'middle',
											visible : true,
											sortable : false,
											formatter : function(value, row, index) {
												return "<span class='jk_article_cate_name'>" + row.title + "</span>";
											}
										},
										{
											field : 'orderby',
											title : '分类排序',
											align : 'center',
											valign : 'middle',
											visible : true,
											sortable : true
										},
										{
											field : 'hidden',
											title : '是否隐藏',
											align : 'center',
											valign : 'middle',
											visible : true,
											sortable : true,
											formatter : function(value, row, index) {
												if (value == true) {
													return '隐藏';
												} else {
													return '显示';
												}
											}
										},
										{
											field : 'option',
											title : '操作',
											align : 'center',
											valign : 'middle',
											visible : true,
											sortable : false,
											formatter : function(value, row, index) {
												return ' <button type="button" class="btn btn-danger btn-xs pf-delete-cate-btn"><i class="glyphicon glyphicon-trash"></i>删除</button>&nbsp;'
														+ '<button type="button" class="btn btn-success btn-xs pf-update-cate-btn"><i class="glyphicon glyphicon-pencil"></i>修改</button>&nbsp;'
														+ '<button type="button" class="btn btn-info btn-xs pf-cate-move-to-btn"><i class="glyphicon glyphicon-leaf"></i>移动到</button>&nbsp;'
														+ '<button type="button" class="btn btn-primary btn-xs pf-add-sub-cate-btn"><i class="glyphicon glyphicon-plus"></i>添加子分类</button>&nbsp;';
												// + '<button type="button"
												// class="btn btn-success btn-xs
												// pf-update-spec-btn"><i
												// class="glyphicon
												// glyphicon-pencil"></i>规格管理</button>&nbsp;'
												// + '<button type="button"
												// class="btn btn-success btn-xs
												// pf-update-property-btn"><i
												// class="glyphicon
												// glyphicon-pencil"></i>商品属性</button>&nbsp;';
											}
										} ]
							});
		},
	}
	ArticleCateObject.init();
})(jQuery);